package com.resifind.www.constant;

/**
 * @author 36069
 */
public enum ErrorCode {
    // 通用错误码
    /**
     * 数据库操作异常
     */
    DB_ERROR(500, "数据库操作异常"),
    /**
     * 服务器异常
     */
    SERVER_ERROR(500, "服务器异常"),

    // 用户业务错误码
    /**
     * 手机号已被注册
     */
    USER_REG_PHONE_NUM_AlREADY(10001, "手机号已被注册"),
    /**
     * 手机号或密码格式错误
     */
    USER_REG_PHONE_NUM_OR_PASSWORD_FORMAT(10002, "手机号或密码格式错误"),
    /**
     * 手机号或密码错误
     */
    USER_LOGIN_PHONE_NUM_OR_PASSWORD_ERROR(10003, "手机号或密码错误"),
    /**
     * 手机号未注册
     */
    USER_PHONE_NUM_NOT_EXIST(10004, "手机号未注册"),
    /**
     * 用户类型错误
     */
    USER_TYPE_ERROR(10005, "用户类型错误"),
    /**
     * 获取用户类型失败
     */
    USER_GET_TYPE_ERROR(10006, "获取用户类型失败"),
    /**
     * 用户未登录
     */
    USER_NOT_LOGIN(10007, "用户未登录"),

    // 客户业务错误码
    /**
     * 实名信息错误
     */
    CLIENT_REAL_NAME_ERROR(20001, "实名信息错误"),
    /**
     * 充值金额错误
     */
    CLIENT_RECHARGE_AMOUNT_ERROR(20002, "充值金额错误"),
    /**
     * 余额不足
     */
    CLIENT_BALANCE_NOT_ENOUGH(20003, "余额不足"),
    /**
     * 已签到
     */
    CLIENT_ALREADY_SIGNED_IN(20004, "已签到"),
    /**
     * 头像文件格式错误
     */
    CLIENT_AVATAR_FILE_FORMAT_ERROR(20005, "头像文件格式错误"),
    /**
     * 头像文件上传失败
     */
    CLIENT_AVATAR_FILE_UPLOAD_ERROR(20006, "头像文件上传失败"),
    /**
     * 原头像文件删除失败
     */
    CLIENT_AVATAR_FILE_DELETE_ERROR(20007, "原头像文件删除失败"),
    /**
     * 非客户浏览
     */
    CLIENT_VIEW_NOT_CLIENT(20008, "非客户浏览"),

    // 商户业务错误码
    /**
     * 房型价格错误
     */
    MERCHANT_ROOM_PRICE_ERROR(30001, "房型价格错误"),
    /**
     * 房间号错误
     */
    MERCHANT_ROOM_NUMBERS_ERROR(30002, "房间号不合法"),
    /**
     * 更新房型数量失败
     */
    MERCHANT_ROOM_UPDATE_SURPLUS_ERROR(30003, "更新房型数量失败"),
    /**
     * 房间不可用
     */
    MERCHANT_ROOM_NOT_AVAILABLE(30004, "房间不可用"),
    /**
     * 商户营业额不足
     */
    MERCHANT_TURNOVER_NOT_ENOUGH(30005, "营业额不足以退款"),

    // 订单业务错误码
    /**
     * 订单未完成
     */
    ORDER_NOT_COMPLETE(40001, "订单未完成"),
    /**
     * 订单未支付或已入住，无法入住
     */
    ORDER_NOT_CHICK_IN(40002, "订单无法入住"),
    /**
     * 订单无法取消
     */
    ORDER_CANNOT_CANCEL(40003, "该订单无法取消"),
    /**
     * 无该订单
     */
    ORDER_NOT_EXIST(40004, "无该订单"),
    /**
     * 订单无法退款
     */
    ORDER_CANNOT_REFUND(40005, "该订单无法退款"),
    /**
     * 订单无法退房
     */
    ORDER_CANNOT_CHECK_OUT(40006, "该订单无法退房"),
    /**
     * 订单已支付
     */
    ORDER_ALREADY_PAID(40007, "该订单已支付"),


    // 黑名单和收藏业务错误码
    /**
     * 已拉黑
     */
    BLACKLIST_ALREADY_EXISTS(50001, "已拉黑"),
    /**
     * 已收藏
     */
    FAVOUR_ALREADY_EXISTS(50002, "已收藏"),
    /**
     * 被拉黑
     */
    BLACKLISTED(50003, "被拉黑"),
    ;
    private final int code;
    private final String msg;

    ErrorCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
